import axios from "axios";

// 创建 Axios 实例
const instance = axios.create({
  baseURL: "https://dev1.baobounty.com/miniApp", // 你的 API 地址
  // baseURL: "http://localhost:3000/miniApp", // 你的 API 地址
  timeout: 5000,
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 可以添加 token 或其他全局请求头
    config.headers.Authorization = "Bearer your_token";
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response) => response.data,
  (error) => {
    console.error("API 请求出错:", error.response || error.message);
    return Promise.reject(error);
  }
);

// 封装 GET 请求
export const get = (url, params = {}) => {
  return instance.get(url, { params });
};

// 封装 POST 请求
export const post = (url, data = {}, config = {}) => {
  return instance.post(url, data, config);
};


// **封装 form-data 格式的 POST 请求**
export const postFormData = (url, formData, config = {}) => {
  return instance.post(url, formData, {
    ...config,
    headers: {
      "Content-Type": "multipart/form-data",
      ...config.headers, // 允许自定义 headers
    },
  });
};


// 取消请求 Hook
export const useCancelRequest = () => {
  const controller = new AbortController();
  const signal = controller.signal;

  return {
    signal,
    cancel: () => controller.abort(),
  };
};
